package com.backend.system.common.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 操作枚举
 *
 * @author backend-manage
 */
@Getter
@AllArgsConstructor
public enum ActionTypeEnum {

    DEFAULT(""),

    // *********************** 用户操作 **********************/
    USER_LOGIN("用户登录"),
    USER_MODIFY_PASSWORD("用户修改密码"),
    USER_ADD_OR_UPDATE("新增或修改用户"),
    USER_GRANT_ROLES("用户分配角色"),
    USER_DELETE("删除用户"),
    USER_DELETE_BATCH("批量删除用户"),

    // *********************** 菜单操作 **********************/
    MENU_DELETE("删除菜单"),
    ROLE_GRANT_MENUS("角色分配菜单"),
    MENU_DISABLE_OR_ENABLE("禁用或启用菜单"),
    MENU_ADD_OR_UPDATE("新增或修改菜单"),

    // *********************** 权限操作 **********************/
    ROLE_GRANT_PERMISSIONS("角色分配权限"),
    PERMISSION_ADD_OR_UPDATE("新增或修改权限"),

    // *********************** 字典操作 **********************/
    DICTIONARY_ADD_OR_UPDATE("新增或修改字典"),

    // *********************** 角色操作 **********************/
    ROLE_ADD_OR_UPDATE("新增或修改角色"),
    ;

    private final String desc;

    public static ActionTypeEnum getInstance(String desc) {
        return Arrays.stream(ActionTypeEnum.values()).filter(t -> t.getDesc().equals(desc)).findAny().orElse(null);
    }
}
